Cellular telephones have recently become increasingly popular for mobile voice communication, as well as for the exchange of text messages and other types of data. For voice communication, cellular telephone systems provide similar services as the fixed, wire-based telephony system, or PSTN (public switched telephony network), except that cellular telephone systems are based upon signal transmission through radio frequency signals rather than wires. Hence, cellular telephones are also termed “wireless telephones”, and communication over such telephones is termed “wireless communication”.
One advantage of cellular telephones is that they permit mobile communication, such that subscribers are able to communicate while traveling, or otherwise when they are not at a fixed physical location. In addition, cellular telephones permit subscribers to be contacted regardless of the location of the subscribers. These advantages of mobile communication are also useful for the exchange of data, such as for text messages and even Web pages, for example. Cellular telephones are able to receive text messages through message exchange protocols such as SMS (short message service), for example, which permit one-to-one communication between cellular telephones through text messages. In addition, protocols such as the WAP (wireless application protocol) protocol enable cellular telephones, which are suitably enabled to receive Web pages and receive email. Thus, cellular telephones potentially provide a full communication solution for all of the different types of electronic communication for a subscriber.
However, cellular telephones have a number of disadvantages over other types of computational devices which are used to exchange data, such as desktop computers, for example. Cellular telephones have limited resources, and as such can be considered to be limited resource devices. They are limited by at least one of available memory, storage space, size of the display screen, and/or computational power, as represented by the ability to perform various data processing tasks. These limitations are imposed by the requirements of portability, convenient and simple operation, battery lifetime, weight and size. In addition, the type of limitations and the hardware specifications of each cellular telephone, or other related handheld device, also differ between, cellular telephone service providers and even manufacturers. Thus, designing a single type of application which is suitable for all cellular telephones, for example, is clearly very difficult.
In addition, the heterogeneity of this computational environment extends to the types of communication protocols according to which these different cellular telephones communicate for data transmission. As described above, two of these protocols include SMS, for character-based messages only, and WAP, for more rich data transmissions which may also include graphics. Other protocols include “I-mode”, the packet-based cellular telephone data transmission protocol of the Japanese company, NTT DoCoMo (Japan).
Unlike the static content which is delivered through WAP or I-mode, the Java 2 Micro Edition (J2ME) API provides a platform for the development and implementation of dynamic content on limited-resource mobile devices. J2ME is a special version of the popular Java programming language (originally developed by Sun Microsystems), which was adapted to the limitations of consumer and embedded devices with limited resources. It is being defined as an industry standard by companies which manufacture limited resource devices, such as Motorola, Nokia and Palm. A similar but non-compatible Java API has been developed by NTT DoCoMo (Japan) for use on its own wireless network.
Another emerging standard is the Mobile Station Application Execution Environment (MExE), which is defined by the Third Generation Partnership Project (3GPP). MExE provides a standardized execution environment in a mobile station, as well as the ability of the mobile station to negotiate supported capabilities with a MExE service provider, thereby allowing applications to be developed across different platforms. Thus, the capabilities of different cellular telephones and other limited resource devices can be accommodated by a particular application.
This last attempted solution, MExE, is the closest attempt to the provision of an integrated platform for delivering applications to a wide variety of cellular telephones and other limited resource devices. However, MExE still suffers from the drawbacks of lacking a specification or support for a server architecture or specific management functions, both of which are required in order to actually deliver the applications to different limited resource devices. Furthermore, all of the above solutions focus on either a method for creating a user application for operation by a limited resource device, such as the modified version of Java; or a method for delivering and displaying content on the limited resource device, such as WAP. They do not provide an integrated solution for creating the user application; adapting the application according to the different requirements of different limited resource devices; and delivering the application to the device through a client-server system which is compatible with such devices, particularly for wireless communication. In addition, these systems do not provide a solution to the problem of charging the subscriber for receiving and using such content through the limited resource device.
Therefore, there is an unmet need for, and it would be highly useful to have, a system and a method for charging users of limited resource devices for receiving and using user applications at the limited resource devices, which would also enable such billing to be performed according to a plurality of rules through a rules engine.